//********************************************************************************************************************//
//ORGANIZATION:
//AUTHOR: bpeng(bogers.peng@gmail.com)
//SUMMARY:
//********************************************************************************************************************//
#ifndef NATIVE_SYSTEM_BASE_COMPARE_H
#define NATIVE_SYSTEM_BASE_COMPARE_H

#ifndef NATIVE_SYSTEM_BASE_ATOM_H
#include "System/Base/Atom.h"
#endif

namespace Native { namespace System
{
    //****************************************************************************************************************//
    //ICompare
    //
    //****************************************************************************************************************//
    template<typename _TSubject>
    struct NATIVE_LIBRARY_EXPORT ICompare
    {
        virtual bool operator>(const _TSubject& rvalue) const = 0;
        virtual bool operator<(const _TSubject& rvalue) const = 0;
        virtual bool operator>=(const _TSubject& rvalue) const = 0;
        virtual bool operator<=(const _TSubject& rvalue) const = 0;
    };
}}

#endif